package net.marloncarvalho.loteriaz.dao;

import java.util.HashMap;
import java.util.Map;

/**
 * Classe representando um crit�rio a ser utilizado para obter dados.
 * 
 * @author Marlon Silva Carvalho
 */
public class Criterio {
	private String consulta;
	private Integer maxResults = 0;
	private String colunaOrdenacao;
	private int ordem;
	private Map<String, Object> parametros = new HashMap<String, Object>();
	private int firstResult = 0;
	
	public Criterio(){}

	public Criterio(String consulta, Integer maxResults, String colunaOrdenacao, int ordem, int firstResult) {
		this.setMaxResults(maxResults);
		this.setFirstResult(firstResult);
		this.setConsulta(consulta);
		this.setOrdem(ordem);
		this.setColunaOrdenacao(colunaOrdenacao);
	}

	public Criterio(Integer maxResults, int firstResult) {
		this.setMaxResults(maxResults);
		this.setFirstResult(firstResult);
	}

	public void adicionarParametro(String k, Object o) {
		this.parametros.put(k,o);
	}

	/**
	 * @return the consulta
	 */
	public String getConsulta() {
		return consulta;
	}
	
	/**
	 * @param consulta the consulta to set
	 */
	public void setConsulta(String consulta) {
		this.consulta = consulta;
	}

	/**
	 * @return the colunaOrdenacao
	 */
	public String getColunaOrdenacao() {
		return colunaOrdenacao;
	}
	
	/**
	 * @param colunaOrdenacao the colunaOrdenacao to set
	 */
	public void setColunaOrdenacao(String colunaOrdenacao) {
		this.colunaOrdenacao = colunaOrdenacao;
	}
	
	/**
	 * @return the ordem
	 */
	public int getOrdem() {
		return ordem;
	}
	
	/**
	 * @param ordem the ordem to set
	 */
	public void setOrdem(int ordem) {
		this.ordem = ordem;
	}

	/**
	 * @return the parametros
	 */
	public Map<String, Object> getParametros() {
		return parametros;
	}

	/**
	 * @param parametros the parametros to set
	 */
	public void setParametros(Map<String, Object> parametros) {
		this.parametros = parametros;
	}

	public Integer getMaxResults() {
		return maxResults;
	}

	public void setMaxResults(Integer maxResults) {
		this.maxResults = maxResults;
	}

	public int getFirstResult() {
		return firstResult;
	}

	public void setFirstResult(int firstResult) {
		this.firstResult = firstResult;
	}
	
}